package com.own.component.elastic.core.advanced.aop;

import com.own.component.elastic.core.base.ElasticFieldHandlerEnum;
import com.own.component.elastic.core.base.aop.ElasticFieldCommon;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * ElasticFieldText
 *
 * @author chenxueli
 * @date 2022-09-03 22:36:00
 */
@Target(ElementType.FIELD)
@Retention(value = RetentionPolicy.RUNTIME)
@ElasticFieldCommon(ElasticFieldHandlerEnum.TEXT)
public @interface ElasticFieldText {

    /**
     * 名称
     *
     * @return 名称
     */
    String name() default "";

    /**
     * 是否需要key
     *
     * @return 是否需要key
     */
    boolean keyword() default false;

    /**
     * 使用ik
     *
     * @return 使用ik
     */
    boolean ik() default false;

    /**
     * analyzer
     *
     * @return analyzer
     */
    String analyzer() default "ik_max_word";

    /**
     * searchAnalyzer
     *
     * @return searchAnalyzer
     */
    String searchAnalyzer() default "ik_smart";

}
